package com.xykj.enterprise.wechat.event.service.ext;

import com.xykj.enterprise.wechat.bean.ext.externalcontact.ExternalContactVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.GetCorpTagListVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.GetExternalContactBatchVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.GetFollowUserListVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.GroupChatListVo;
import com.xykj.enterprise.wechat.bean.ext.externalcontact.GroupChatVo;

import java.util.HashMap;

/**
 * @Author george
 * @create 2021-04-21 20:18
 */
public interface ExternalContactService {

    /**
     * ext 接口--获取配置了客户联系功能的成员列表
     *
     * @param accessToken
     * @return
     */
    GetFollowUserListVo getFollowUserList(String accessToken);

    /**
     * ext 接口--批量查询客户
     *
     * @param accessToken
     * @param userid
     * @param cursor
     * @param limit
     * @return
     */
    GetExternalContactBatchVo getExternalContactBatch(String accessToken, String userid, String cursor, Integer limit);


    /**
     * ext 接口--查询客户详情
     *
     * @param accessToken
     * @param external_userid
     * @return
     */
    ExternalContactVo getExternalContact(String accessToken, String external_userid);

    /**
     * 查询企业标签数据
     *
     * @param accessToken
     * @param tag_id
     * @param group_id
     * @return
     */
    GetCorpTagListVo getCorpTagList(String accessToken, String[] tag_id, String[] group_id);

    /**
     * 获取客户群列表
     * status_filter	否	客户群跟进状态过滤。
     * 0 - 所有列表(即不过滤)
     * 1 - 离职待继承
     * 2 - 离职继承中
     * 3 - 离职继承完成
     *
     * 默认为0
     * owner_filter	否	群主过滤。
     * 如果不填，表示获取应用可见范围内全部群主的数据（但是不建议这么用，如果可见范围人数超过1000人，为了防止数据包过大，会报错 81017）
     * owner_filter.userid_list	否	用户ID列表。最多100个
     * cursor	否	用于分页查询的游标，字符串类型，由上一次调用返回，首次调用不填
     * limit	是	分页，预期请求的数据量，取值范围 1 ~ 1000
     *
     * @param accessToken
     * @return
     */
    GroupChatListVo getGroupChatList(String accessToken, String status_filter, String owner_filter_user_list, String cursor, Integer limit);

    /**
     * 获取客户群详情
     *
     * @param accessToken
     * @param chatId
     * @return
     */
    GroupChatVo getGroupChat(String accessToken, String chatId);

}
